package com.reservation.controller.staff;

import com.reservation.dto.staff.SetFreeDTO;
import com.reservation.result.Result;
import com.reservation.service.StaffService;
import com.reservation.vo.staff.UseFinishedItemVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Api(tags = "员工使用完毕列表接口")
@RestController
@RequestMapping("/api/staff")
@Slf4j
public class UseFinishedController {

    @Autowired
    private StaffService staffService;

    /**
     * 获取使用完毕列表
     *
     * @return 使用完毕列表
     */
    @PostMapping("/getUseFinishedList")
    @ApiOperation("获取使用完毕列表")
    public Result<List<UseFinishedItemVO>> getUseFinishedList() {
        log.info("获取使用完毕列表");
        List<UseFinishedItemVO> list = staffService.getUseFinishedList();
        return Result.success(list);
    }

    /**
     * 设置为空闲
     *
     * @param setFreeDTO 包含订单ID的DTO
     * @return 操作结果
     */
    @PostMapping("/setFree")
    @ApiOperation("设置为空闲")
    public Result<String> setFree(@RequestBody SetFreeDTO setFreeDTO) {
        log.info("设置为空闲，订单ID: {}", setFreeDTO.getId());
        return staffService.setFree(setFreeDTO.getId()) ?
            Result.success("操作成功") :
            Result.error("操作失败，请重试");
    }

    /**
     * 设置为维护
     *
     * @param setFreeDTO 包含订单ID的DTO
     * @return 操作结果
     */
    @PostMapping("/setMaintenance")
    @ApiOperation("设置为维护")
    public Result<String> setMaintenance(@RequestBody SetFreeDTO setFreeDTO) {
        log.info("设置为维护，订单ID: {}", setFreeDTO.getId());
        return staffService.setMaintenance(setFreeDTO.getId()) ?
            Result.success("操作成功") :
            Result.error("操作失败，请重试");
    }
}
